﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sistema.NFe.Xml.Versao200
{
    class XmlRetornoEnvioNFe200 : Sistema.NFe.Xml.Interfaces.IXmlRetornoEnvioNFe
    {
        Int32 _status;
        String _descricaoRecibo;
        long _recibo;
        DateTime _dataRecibo;
        String _xml;

        #region Propriedades
        public String Xml
        {
            get { return _xml; }
            set
            {
                _xml = value;
                CarregaDadosXml();
            }
        }

        public DateTime DataRecibo
        {
            get { return _dataRecibo; }
            set { _dataRecibo = value; }
        }
        public long Recibo
        {
            get { return _recibo; }
            set { _recibo = value; }
        }

        public String DescricaoRecibo
        {
            get { return _descricaoRecibo; }
            set { _descricaoRecibo = value; }
        }

        public Int32 Status
        {
            get { return _status; }
            set { _status = value; }
        } 
        #endregion

        public XmlRetornoEnvioNFe200()
        {
            this._status = 0;
            this._descricaoRecibo = String.Empty;
            this._recibo = 0;
            this._dataRecibo = new DateTime();
            this._xml = String.Empty;
        }

        private void CarregaDadosXml()
        {
            Mapeamento.TRetEnviNFe dados = new Util.Serializacao().Deserialize<Mapeamento.TRetEnviNFe>(this._xml);
            Int32.TryParse(dados.cStat,out this._status);
            this.DescricaoRecibo = dados.xMotivo;
            long.TryParse(dados.infRec.nRec, out this._recibo);
            this._dataRecibo = dados.dhRecbto;
        }
    }
}
